%ifdef CONFIG
{
  "HostFeatures": ["AVX"],
  "RegData": {
    "XMM4":  ["0x8042434445464748", "0x7172737475767778", "0x0000000000000000", "0x0000000000000000"],
    "XMM5":  ["0xFF80004300450047", "0x0071007300750077", "0x0000000000000000", "0x0000000000000000"],
    "XMM6":  ["0xFFFF000000000000", "0x0000000000000000", "0x0000000000000000", "0x0000000000000000"],
    "XMM7":  ["0x8042434445464748", "0x7172737475767778", "0x0000000000000000", "0x0000000000000000"],
    "XMM8":  ["0xFF80004300450047", "0x0071007300750077", "0x0000000000000000", "0x0000000000000000"],
    "XMM9":  ["0xFFFF000000000000", "0x0000000000000000", "0x0000000000000000", "0x0000000000000000"],
    "XMM10": ["0x8042434445464748", "0x7172737475767778", "0x4142434445464748", "0x7172737475767778"],
    "XMM11": ["0xFF80004300450047", "0x0071007300750077", "0x0041004300450047", "0x0071007300750077"],
    "XMM12": ["0xFFFF000000000000", "0x0000000000000000", "0x0000000000000000", "0x0000000000000000"],
    "XMM13": ["0x8042434445464748", "0x7172737475767778", "0x4142434445464748", "0x7172737475767778"],
    "XMM14": ["0xFF80004300450047", "0x0071007300750077", "0x0041004300450047", "0x0071007300750077"],
    "XMM15": ["0xFFFF000000000000", "0x0000000000000000", "0x0000000000000000", "0x0000000000000000"]
  },
  "MemoryRegions": {
    "0x100000000": "4096"
  }
}
%endif

lea rdx, [rel .data]

vmovapd ymm0, [rdx + 32 * 0]
vmovapd ymm1, [rdx + 32 * 1]
vmovapd ymm2, [rdx + 32 * 2]
vmovapd ymm3, [rdx + 32 * 3]

vpsraw xmm4, xmm0, xmm1
vpsraw xmm5, xmm0, xmm2
vpsraw xmm6, xmm0, xmm3

vpsraw xmm7, xmm0, [rdx + 32 * 1]
vpsraw xmm8, xmm0, [rdx + 32 * 2]
vpsraw xmm9, xmm0, [rdx + 32 * 3]

vpsraw ymm10, ymm0, xmm1
vpsraw ymm11, ymm0, xmm2
vpsraw ymm12, ymm0, xmm3

vpsraw ymm13, ymm0, [rdx + 32 * 1]
vpsraw ymm14, ymm0, [rdx + 32 * 2]
vpsraw ymm15, ymm0, [rdx + 32 * 3]

hlt

align 32
.data:
dq 0x8042434445464748
dq 0x7172737475767778
dq 0x4142434445464748
dq 0x7172737475767778

dq 0x0000000000000000
dq 0x5152535455565758
dq 0x5152535455565758
dq 0x5152535455565758

dq 0x0000000000000008
dq 0x5152535455565758
dq 0x5152535455565758
dq 0x5152535455565758

dq 0x0000000000000010
dq 0x5152535455565758
dq 0x5152535455565758
dq 0x5152535455565758
